/*
'===============================================================================
'  .ProductsEntity
'===============================================================================
*/

using System;
using System.Collections.Generic;

namespace WB.Entity
{
	public class ProductsEntity
	{
		/// <summary>
		/// Class Products is generation
		/// </summary>
		
		public ProductsEntity()
		{
			// Nothing for now.
		}
		
		private const string TableName = "Products";
		
		
		private const string _IdProperty = "@Name:Id@DataType:uniqueidentifier@IsKey:True@Length:0";
		private bool _IdIsDirty = false;
        private Guid _IdValue;
        public Guid Id
        {
            get { return _IdValue; }
            set
            {
                _IdValue = value;
                _IdIsDirty = true;
            }
        }
		
		private const string _IntIdProperty = "@Name:IntId@DataType:int@IsKey:False@Length:0";
		private bool _IntIdIsDirty = false;
        private int _IntIdValue;
        public int IntId
        {
            get { return _IntIdValue; }
            set
            {
                _IntIdValue = value;
                _IntIdIsDirty = true;
            }
        }
		
		private const string _CategoryIdProperty = "@Name:CategoryId@DataType:uniqueidentifier@IsKey:False@Length:0";
		private bool _CategoryIdIsDirty = false;
        private Guid _CategoryIdValue;
        public Guid CategoryId
        {
            get { return _CategoryIdValue; }
            set
            {
                _CategoryIdValue = value;
                _CategoryIdIsDirty = true;
            }
        }
		
		private const string _ProductNameProperty = "@Name:ProductName@DataType:nvarchar(256)@IsKey:False@Length:256";
		private bool _ProductNameIsDirty = false;
        private string _ProductNameValue;
        public string ProductName
        {
            get { return _ProductNameValue; }
            set
            {
                _ProductNameValue = value;
                _ProductNameIsDirty = true;
            }
        }
		
		private const string _ProductCodeProperty = "@Name:ProductCode@DataType:varchar(50)@IsKey:False@Length:50";
		private bool _ProductCodeIsDirty = false;
        private string _ProductCodeValue;
        public string ProductCode
        {
            get { return _ProductCodeValue; }
            set
            {
                _ProductCodeValue = value;
                _ProductCodeIsDirty = true;
            }
        }
		
		private const string _PriceProperty = "@Name:Price@DataType:money@IsKey:False@Length:0";
		private bool _PriceIsDirty = false;
        private decimal _PriceValue;
        public decimal Price
        {
            get { return _PriceValue; }
            set
            {
                _PriceValue = value;
                _PriceIsDirty = true;
            }
        }
		
		private const string _PhotoProperty = "@Name:Photo@DataType:nvarchar(512)@IsKey:False@Length:512";
		private bool _PhotoIsDirty = false;
        private string _PhotoValue;
        public string Photo
        {
            get { return _PhotoValue; }
            set
            {
                _PhotoValue = value;
                _PhotoIsDirty = true;
            }
        }
		
		private const string _InfoProperty = "@Name:Info@DataType:nvarchar(512)@IsKey:False@Length:512";
		private bool _InfoIsDirty = false;
        private string _InfoValue;
        public string Info
        {
            get { return _InfoValue; }
            set
            {
                _InfoValue = value;
                _InfoIsDirty = true;
            }
        }
		
		private const string _ContentsProperty = "@Name:Contents@DataType:nvarchar(1024)@IsKey:False@Length:1024";
		private bool _ContentsIsDirty = false;
        private string _ContentsValue;
        public string Contents
        {
            get { return _ContentsValue; }
            set
            {
                _ContentsValue = value;
                _ContentsIsDirty = true;
            }
        }
		
		private const string _CreatedByProperty = "@Name:CreatedBy@DataType:varchar(50)@IsKey:False@Length:50";
		private bool _CreatedByIsDirty = false;
        private string _CreatedByValue;
        public string CreatedBy
        {
            get { return _CreatedByValue; }
            set
            {
                _CreatedByValue = value;
                _CreatedByIsDirty = true;
            }
        }
		
		private const string _CreatedDateProperty = "@Name:CreatedDate@DataType:datetime@IsKey:False@Length:0";
		private bool _CreatedDateIsDirty = false;
        private DateTime _CreatedDateValue;
        public DateTime CreatedDate
        {
            get { return _CreatedDateValue; }
            set
            {
                _CreatedDateValue = value;
                _CreatedDateIsDirty = true;
            }
        }
		
		private const string _UpdatedByProperty = "@Name:UpdatedBy@DataType:varchar(50)@IsKey:False@Length:50";
		private bool _UpdatedByIsDirty = false;
        private string _UpdatedByValue;
        public string UpdatedBy
        {
            get { return _UpdatedByValue; }
            set
            {
                _UpdatedByValue = value;
                _UpdatedByIsDirty = true;
            }
        }
		
		private const string _UpdatedDateProperty = "@Name:UpdatedDate@DataType:datetime@IsKey:False@Length:0";
		private bool _UpdatedDateIsDirty = false;
        private DateTime _UpdatedDateValue;
        public DateTime UpdatedDate
        {
            get { return _UpdatedDateValue; }
            set
            {
                _UpdatedDateValue = value;
                _UpdatedDateIsDirty = true;
            }
        }
		
		private const string _IsDeletedProperty = "@Name:IsDeleted@DataType:bit@IsKey:False@Length:0";
		private bool _IsDeletedIsDirty = false;
        private bool _IsDeletedValue;
        public bool IsDeleted
        {
            get { return _IsDeletedValue; }
            set
            {
                _IsDeletedValue = value;
                _IsDeletedIsDirty = true;
            }
        }
		
		
		public void ResetDirty()
        {
			_IdIsDirty = false;
			_IntIdIsDirty = false;
			_CategoryIdIsDirty = false;
			_ProductNameIsDirty = false;
			_ProductCodeIsDirty = false;
			_PriceIsDirty = false;
			_PhotoIsDirty = false;
			_InfoIsDirty = false;
			_ContentsIsDirty = false;
			_CreatedByIsDirty = false;
			_CreatedDateIsDirty = false;
			_UpdatedByIsDirty = false;
			_UpdatedDateIsDirty = false;
			_IsDeletedIsDirty = false;
		
		}
	}
}
